查看原文
其他

分享一个超牛逼的 Java 文件在线预览项目(附源码)!

GitHub猿 2022-07-01

来自:gitee

往期文章:推荐一个酷炫的监控系统(附源码)!


正文


大家好,我是GitHub猿。今天,推荐一个监控系统项目。

上次是谁要的监控系统项目啊,猿哥帮你找到了。

这是我目前见过的最好的监控系统项目。功能完整,代码结构清晰。值得推荐。

简介

基于 OpenOffice 服务将文件 (.doc、.docx、.xls、.ppt) 转化为pdf、html格式,然后直接在浏览器渲染输出。

内置功能

  • 文件上传功能

  • 文件转换功能

  • 文件预览功能

  • 远程文件预览功能

代码集成

基于 SpringBoot + OpenOffice 实现的项目案例,配置文件 application.properties 引入:
搜索公众号GitHub猿回复“打飞机”,送你一份惊喜礼包。
# 默认不开启 需要开启的设置成true
jodconverter.local.enabled=true
# 开启多个openOffice进程,每个端口对应一个进程
jodconverter.local.portNumbers=8100,8200
# openOffice进程重启前的最大进程数
jodconverter.local.maxTasksPerProcess=100
项目启动会自动生成两个转换进程,下面是伪代码实现:
@RestController
@RequestMapping("document")
public class ConverterController {

@Autowired
private DocumentConverter documentConverter;

/**
* 文件上传
*/

@RequestMapping("/upload")
public Result upload(MultipartFile file) {
try {
if (file != null) {
File parentFile = createParentFile();
String fileName = file.getOriginalFilename();
String suffix = fileName.substring(fileName.lastIndexOf("."));
String uuid = IdUtil.simpleUUID();
fileName = uuid + suffix;
File docFile = new File(parentFile, fileName);
FileUtil.writeFromStream(file.getInputStream(), docFile);
/**
* 年月日目录
*/

String fileDay = DateUtil.thisYear() + "/" + (DateUtil.thisMonth() + 1) + "/"
+ DateUtil.thisDayOfMonth();
String imagePath = SystemConstant.FILE + "/document/" + fileDay + "/" + fileName;
/**
* 实时转换
*/

logger.info("开始转换pdf......");
File toFile = new File(parentFile, uuid + ".pdf");
documentConverter.convert(docFile).to(toFile).execute();
logger.info("开始转换html......");
toFile = new File(parentFile, uuid + ".html");
converter( docFile,toFile);
return Result.ok(imagePath);
} else {
return Result.error();
}
} catch (Exception e) {
logger.error("转换异常{}",e);
return Result.error();
}
}
}

软件截图


小结

网上很多文章,Java 集成 OpenOffice 已经老得不能再老了,在 Linux 下还有各种启动问题,本案例只需要在系统中安装好相关服务,程序启动会自动生成 OpenOffice 进程。



SPAdmin已经在gitee上标星 1.6K,累计分支 780 

源码获取

扫码下方二维码,后台回复【预览】即可获取


--END--


猿哥个人微信


添加猿哥个人微信即送一份惊喜大礼包


→ 技术资料共享

→ 技术交流社群



版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

往日文章:
推荐一套开源通用后台管理系统(附源码)
牛逼啊!接私活必备的 N 个开源项目!赶快收藏吧(附源码合集第一期)!
SpringBoot+MyBatis+docker电商项目,附带超详细的文档(附源码)!
分享一套开源的网页版聊天室系统(附源码)!

分享一套开源的即时通讯 IM 聊天系统(附源码)

分享一套开源微信后台开发源码,简单配置就能使用(附源码)!


最近,GitHub猿建了一个「GitHub猿交流群」,欢迎大家一起交流优秀开源项目,也可以宣传自己的开源项目,在 「GitHub猿」公众号后台回复【加群】邀请你入群。

你点的每个赞,我都认真当成了喜欢

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存